import axios from "axios";
import { message } from "antd";
import { showLoading, hiddenLoading } from "../pages/loading";
//封装一个axios请求
axios.interceptors.request.use(
  function (config) {
    // 在发送请求之前做些什么
    showLoading();
    config.headers = {
      //统一给请求添加Authorization属性
      " Authorization": sessionStorage.getItem("token"),
    };
    return config;
  },
  function (error) {
    // 对请求错误做些什么

    return Promise.reject(error);
  }
);

//封装
function Handeldata(res, callback) {
  if (res.data.success) {
    //后端返回成功
    hiddenLoading();
    callback(res.data);
  } else {
    message.error(res.data.message);
  }
}
function Handelerr(err) {
  hiddenLoading();
  message.error(err.message);
}

/**
 *
 * @param {*} url 请求地址
 * @param {*} callback 请求成功的回调函数
 */
export function Get(url, callback) {
  axios
    .get(url)
    .then((data) => {
      Handeldata(data, callback);
    })
    .catch(Handelerr);
}
/**
 *
 * @param {*} url 请求地址
 * @param {*} data 请求发送的数据
 * @param {*} callback 请求成功的回调函数
 */
export function Post(url, data, callback) {
  axios
    .post(url, data)
    .then((data) => {
      Handeldata(data, callback);
    })
    .catch(Handelerr);
}
